<h2 class="heading" data-id="heading-0">小册介绍</h2>
<p>本小册为纯实战类型的教程系列，以React全家桶(包含hooks)以及immutable数据流为基础仿网易云音乐UI打造一款高质量的WebApp。</p>
<p>首先说一说为什么要开始做这个前端的小册教程:</p>
<p>1、React Hooks如今可谓前端界"当红小生"， 因其API简洁性、逻辑复用性等特性逐渐被开发者所应用，vue3.0也是采用类似的Function Based的模式，因此学习React Hooks也是未来的大趋势，通过一个具体的项目来实践、应用hooks特性，我觉得比干啃文档要强太多，并且在实践的过程中会遇到一些坑，通过坑驱动来学习，可以加深我们对于hooks原理的理解。</p>
<p>2、把Redux和不可变数据结合也是react性能优化的一个重要的手段，通过immutable.js来进行实践一把，能够加深自己对于React性能优化相关知识的理解。</p>
<p>3、完成这个小册中的项目绝对不仅仅是功能上的实现，我保证整个项目的质量能够对得起”精美“二字，从头到尾不断优化和迭代才得以完成，因此也非常乐意分享给更多在前端路上的同学，也有自信能让大家收获到非常多的知识点和实战经验，帮助大家进阶。</p>
<p>接下来介绍一下这个项目的<strong>技术栈</strong>:</p>
<ul>
<li>
<p><code>react v16.8全家桶(react，react-router)</code> : 用于构建用户界面的 MVVM 框架</p>
</li>
<li>
<p><code>redux</code>: 著名JavaScript状态管理容器</p>
</li>
<li>
<p><code>redux-thunk</code>:
处理异步逻辑的redux中间件</p>
</li>
<li>
<p><code>immutable</code>: Facebook历时三年开发出的进行持久性数据结构处理的库</p>
</li>
<li>
<p><code>react-lazyload</code>: react懒加载库better-scroll: 提升移动端滑动体验的知名库</p>
</li>
<li>
<p><code>styled-components</code>: 处理样式，体现css in js的前端工程化神器</p>
</li>
<li>
<p><code>axios</code>: 用来请求后端api的数据。</p>
</li>
</ul>
<p><strong>写作思路</strong>:小册的主干部分以不同的模块为线索，一共有推荐模块、歌手列表模块、排行榜模块、歌单详情模块、歌手主页模块、播放器模块和搜索模块构成，中间会穿插一些基础组件的搭建，整个性能及体验的优化过程也会在每个模块开发基本完成之后来进行，因此是一个循序渐进、不断深入的过程。</p>
<p><strong>主题特点</strong>:以实战为线索，逐步深入React开发各个环节，掌握前端常用性能体验优化思路，打造完整前端工作流，提升工程化编码能力和思维能力。</p>
<p><strong>整体架构</strong>:</p>
<p></p><figure><img class="lazyload inited" data-src="https://user-gold-cdn.xitu.io/2019/12/10/16ef01876df7d36d?imageView2/0/w/1280/h/960/format/webp/ignore-error/1" data-width="1280" data-height="1070" src="data:image/svg+xml;utf8,&lt;?xml version=&quot;1.0&quot;?&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.1&quot; width=&quot;1280&quot; height=&quot;1070&quot;&gt;&lt;/svg&gt;"><figcaption></figcaption></figure><p></p>
<h2 class="heading" data-id="heading-1">你会学到什么？</h2>
<p>读完小册你会有什么收获:</p>
<ol>
<li>熟练使用React Hooks进行业务开发，理解哪些场景产生<code>闭包陷阱</code>，如何避免掉坑。</li>
<li>手写近<code>6000行代码</code>，封装<code>13</code>个基础UI组件、<code>12</code>个业务组件，让你知道关于 React + Redux 业内公认的<strong>最佳实践</strong>到底是什么样子。</li>
<li>封装常用的移动端组件，实现常见的需求，如<code>封装滚动组件</code>、<code>实现图片懒加载</code>、<code>实现上拉/下拉刷新</code>的功能、<code>实现防抖</code>功能、<code>实现组件代码分割</code>(CodeSpliting)等。</li>
<li>拥有实现前端复杂交互的实际项目经验，提升自己的<strong>内功</strong>，比如开发播放器内核就是其中一个很大的挑战。</li>
<li>掌握CSS中的诸多技巧，提升自己的CSS能力，无论布局还是动画，都有相当多的实践和探索，<strong>未使用任何UI框架</strong>，样式代码独立实现。</li>
<li>彻底理解<strong>redux原理</strong>，并能够独立开发redux的中间件。</li>
</ol>
<h2 class="heading" data-id="heading-2">作者介绍</h2>
<p>「前端三元同学」公众号作者，掘金优秀作者，博客关注量过万,  深耕前端领域，并且长期坚持输出优质博客文章，热爱开源，热爱分享。</p>
<h2 class="heading" data-id="heading-3">适宜人群</h2>
<ul>
<li>1.学习过一些前端基础但缺乏实战经验的在校大学生。</li>
<li>2.业务中常常使用市面上各种UI框架和库无法提升自己，想要通过一种方式来强化基础和内功的前端工程师。</li>
<li>3.原来的技术栈是Vue.js，想要快速学习和掌握React.js并积累实战经验的前端开发者。</li>
<li>4.对React Hooks非常感兴趣，但是对它的了解仅仅停留在各种理论性的文档中，缺乏实践的经验，对各个hooks的应用场景不太理解的前端同学。</li>
<li>5.有前端基础，想要做一个高质量的前端项目，系统掌握前端开发完整流程，成为全栈开发的服务端同学。</li>
</ul>
<p>另外，一些前端知识的基础是需要的，比如HTML、CSS、原生JavaScript的基础。总之，这个小册并不是零基础教程，重点的原理性内容会有所强调，但绝不会有照搬官方文档的重复性内容，保证全程高能实战。当然这里我也没有办法保证项目涉及的技术栈你都有实践过，但这个小册的意义恰恰在于给你一个实际的场景，在一个舒适的环境中完成一个复杂的项目，并在这个过程中知道自己还有哪些不足、理解不透彻的地方，让你更加明确以后努力以及深耕的具体方向，我觉得这是比单纯地做一个项目更加宝贵的东西。</p>
<h2 class="heading" data-id="heading-4">购买须知</h2>
<ol>
<li>本小册为图文形式内容服务，共计 34 节；</li>
<li>全部文章预计 11 月 1 日更新完成；</li>
<li>购买用户可享有小册永久的阅读权限；</li>
<li>购买用户可进入小册微信群，与作者互动；</li>
<li>掘金小册为虚拟内容服务，一经购买成功概不退款；</li>
<li>掘金小册版权归北京北比信息技术有限公司所有，任何机构、媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发布/发表，违者将依法追究责任；</li>
<li>在掘金小册阅读过程中，如有任何问题，请邮件联系 xiaoce@xitu.io</li>
</ol>
